﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;

namespace CommonObjects.LeasingLogic
{



    public class CalcOutputRow
    {
        int _Sorszam;
        int _Esedekesseg;
        Double _TokeEgyenleg;
        Double _ValosTokeEgyenleg;
        Double _TokeTorlesztes;
        Double _KamatTorlesztes;
        Double _KezelesiKtg;
        Double _Torlesztes;
        Calculation _Parent;

        protected String _ResultString;
        public String ResultString
        {
            get
            {
                return RowToString();
            }
            set
            {
                _ResultString = value;

            }
        }

        #region Constructor;

        public CalcOutputRow()
        {
            _Sorszam = 0;
            _Esedekesseg = 0;
            _TokeEgyenleg = 0;
            _TokeTorlesztes = 0;
            _KamatTorlesztes = 0;
            _KezelesiKtg = 0;
            _Torlesztes = 0;

        }

        public CalcOutputRow(Calculation pParent,
                               int pSorszam,
                               int pEsedekesseg,
                               Double pTokeEgyenleg,
                               Double pTokeTorlesztes,
                               Double pKamatTorlesztes,
                               Double pKezelesiKtg,
                               Double pTorlesztes)
        {
            _Parent = pParent;
            _Sorszam = pSorszam;
            _Esedekesseg = pEsedekesseg;
            _TokeEgyenleg = pTokeEgyenleg;
            _TokeTorlesztes = pTokeTorlesztes;
            _KamatTorlesztes = pKamatTorlesztes;
            _KezelesiKtg = pKezelesiKtg;
            _Torlesztes = pTorlesztes;

        }

        #endregion


        #region ReturnEvents

        private String RowToString()
        {
            _ResultString = Convert.ToString(_Sorszam) + "-";
            _ResultString += Convert.ToString(_Esedekesseg) + (Char)9;
            _ResultString += Convert.ToString(_TokeEgyenleg) + " - ";
            _ResultString += Convert.ToString(_TokeTorlesztes) + " - ";
            _ResultString += Convert.ToString(_KamatTorlesztes) + " - ";
            _ResultString += Convert.ToString(_KezelesiKtg);
            return _ResultString;
        }

        private String getStrEsedekesseg()
        {
            return Convert.ToString(_Esedekesseg);
        }
        private String getStrTokeEgyenleg()
        {
            if (_TokeEgyenleg != 0)
            {
                return _TokeEgyenleg.ToString("#,#", CultureInfo.CreateSpecificCulture("hu-HU")) + " " + _Parent.InputParams.Deviza;
            }
            else
            {
                return _TokeEgyenleg.ToString("#,#", CultureInfo.CreateSpecificCulture("hu-HU"));
            }
        }
        private String getStrTokeTorlesztes()
        {
            if (_TokeTorlesztes != 0)
            {
                return _TokeTorlesztes.ToString("#,#", CultureInfo.CreateSpecificCulture("hu-HU")) + " " + _Parent.InputParams.Deviza;
            }
            else
            {
                return _TokeTorlesztes.ToString("#,#", CultureInfo.CreateSpecificCulture("hu-HU"));
            }
        }
        private String getStrKamatTorlesztes()
        {
            if (_KamatTorlesztes != 0)
            {
                return _KamatTorlesztes.ToString("#,#", CultureInfo.CreateSpecificCulture("hu-HU")) + " " + _Parent.InputParams.Deviza;
            }
            else
            {
                return _KamatTorlesztes.ToString("#,#", CultureInfo.CreateSpecificCulture("hu-HU"));
            }
        }
        private String getStrKezelesiKtg()
        {
            if (_KezelesiKtg != 0)
            {
                return _KezelesiKtg.ToString("#,#", CultureInfo.CreateSpecificCulture("hu-HU")) + " " + _Parent.InputParams.Deviza;
            }
            else
            {
                return _KezelesiKtg.ToString("#,#", CultureInfo.CreateSpecificCulture("hu-HU"));
            }

        }
        private String getStrTorlesztes(double arf )
        {
            if (arf > 0) 
            {
                return (_Torlesztes * arf).ToString("#,#", CultureInfo.CreateSpecificCulture("hu-HU")) + " Huf";
 
            }
            else
            {
                return _Torlesztes.ToString("#,#", CultureInfo.CreateSpecificCulture("hu-HU")) + " " + _Parent.InputParams.Deviza;
            }
        }

        public String getStrOszlopAdat(string pOszlopNev)
        {
            string ret = "";
            switch (pOszlopNev)
            {
                case "honap": ret = getStrEsedekesseg(); break;
                case "TokeEgy": ret = getStrTokeEgyenleg(); break;
                case "TokeTorl": ret = getStrTokeTorlesztes(); break;
                case "KamatTorl": ret = getStrKamatTorlesztes(); break;
                case "KezKtg": ret = getStrKezelesiKtg(); break;
                case "TorlesztesDeviza": ret = getStrTorlesztes(0); break;
                case "Torlesztes": ret = getStrTorlesztes(_Parent.InputParams.Arfolyam); break;


            }

            return ret;
        }


        public double getDblTokeEgyenleg()
        {
            return _TokeEgyenleg;
        }
        public double getDblKezKtg()
        {
            return _KezelesiKtg;
        }

        public double getDblTorlesztes()
        {
            return _Torlesztes;
        }
 
   
        #endregion


    }
}
